package com.mercury.ec.module.air.dal.dataobject.order;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mercury.ec.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;

import java.time.LocalDate;

/**
 * 机票订单乘客 DO
 *
 * @author hesx
 */
@TableName("air_order_passenger")
@KeySequence("air_order_passenger_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AirOrderPassengerDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 序号
     */
    private Integer serialNo;
    /**
     * 原订单乘客id
     */
    private Long originOrderPassengerId;
    /**
     * 乘客类型 字典（system_passenger_type 1-成人/2-儿童/3-婴儿）
     *
     * 枚举 {@link TODO system_passenger_type 对应的类}
     */
    private Integer type;
    /**
     * 国家代码 见表（basic_country.no）
     */
    private String countryNo;
    /**
     * 姓名
     */
    private String name;
    /**
     * 性别 字典（system_user_sex）
     *
     * 枚举 {@link TODO system_user_sex 对应的类}
     */
    private Integer sex;
    /**
     * 证件类型 字典（system_card_type）
     *
     * 枚举 {@link TODO system_card_type 对应的类}
     */
    private Integer cardType;
    /**
     * 证件号
     */
    private String cardNo;
    /**
     * 证件有效期
     */
    private LocalDate cardValidDate;
    /**
     * 证件签发国家代码 见表（basic_country.no）
     */
    private String cardIssuingCountryNo;
    /**
     * 出生日期
     */
    private LocalDate birthday;
    /**
     * 是否携带婴儿
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Boolean haveBaby;
    /**
     * 监护人姓名
     */
    private String guardianName;
    /**
     * 手机号
     */
    private String mobile;
    /**
     * 邮箱
     */
    private String email;
    /**
     * GP验证类型 字典（air_gp_check_type 1-公务卡/2-预算单位）
     */
    private Integer gpCheckType;
    /**
     * GP公务卡发卡银行 字典（system_bank）
     */
    private Integer gpBank;
    /**
     * GP预算公司
     */
    private String gpBudgetCorp;
    /**
     * 是否发送短信
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Boolean sendSms;

}
